import java.util.*;

public class Homework {
    static public Scanner sc = new Scanner(System.in);

    // 简化printf输出语句
    static public void p(String format, Object ... obj) {
        System.out.printf(format, obj);
    }
        // 获取一个整型范围
    static public int [] getRange(int [] inputRange) {
        int [] range = {Integer.MIN_VALUE, Integer.MAX_VALUE};

        if (inputRange.length == 1) {
            range[1] = inputRange[0];
        } else if (inputRange.length > 1) {
            if (inputRange[0] == inputRange[1]) {
                range[0] = inputRange[0];
            } else if (inputRange[0] > inputRange[1]) {
                range[0] = inputRange[1];
                range[1] = inputRange[0];
            } else {
                range[0] = inputRange[0];
                range[1] = inputRange[1];
            }
        }

        return range;
    }

    // 封装获取整型数
    static public int getInt(String prompt, int ... inputRange) {
        int num;
        int [] range = getRange(inputRange);

        while (true) {
            System.out.printf(prompt);
            num = sc.nextInt();
            if (num >= range[0] && num <= range[1])
                break;
        }

        return num;
    }

    // 输入初始化数组 {
    //      prompt          指定输入提示字符串
    //      arr             指定初始化的数组
    //      len             指定初始化的个数
    //          arr != null 指定初始化数组的个数
    //          arr == null 指定新建数组的长度
    //      range           指定输入数据的范围
    //      返回值
    //          arr == null 返回新建数组
    //          arr != null 返回指定初始化的数组
    // }
    static public int [] inputArr(String prompt, int [] arr, int len, int ... range) {
        int [] tmpArr = (arr == null) ? new int[len] : arr;
        int valCount = tmpArr.length > len ? len : tmpArr.length;

        for (int i = 0; i < valCount; ++i) {
            tmpArr[i] = getInt("[" + i + "]" + prompt, range);
        }

        return tmpArr;
    }

    // 输出数组
    //      arr         指定要输出数组
    //      prompt      指定要输出的前缀样式
    //      返回值      返回输出的数组
    static public int [] showArr(int [] arr, String prompt) {
        p(prompt);
        for (int i : arr) {
            p("%d ", i);
        }
        p("\n");

        return arr;
    }

    // 从一个数组中找出第二大不重复的数(不排序/不使用临时数组实现)
    static public void secNum() {
        int a[] = inputArr("请输入整型元素的值: ", null, 10);
        int i, j, count = 0, max = 0, sec = Integer.MIN_VALUE;
        boolean flags = true, flagSec = true;

        showArr(a, "inputArray: ");

        for (i = 0; i < a.length; ++i) {
            for (j = 0, count = 0; j < a.length; ++j) {
                if (a[i] == a[j])
                    count++;
            }
            if (count == 1) {
                if (flags) {
                    max = a[i];
                    flags = false;
                    continue;
                }
                if (max < a[i]) {
                    sec = max;
                    max = a[i];
                    flagSec = false;
                } else if (sec <= a[i]) {
                    sec = a[i];
                    flagSec = false;
                }
            }
        }
        if (flags) {
            p("没有不重复的最大值!\n");
        } else {
            p("max = %d\n", max);
            if (flagSec) {
                p("没有不重复的第二大值!\n");
            } else {
                p("sec = %d\n", sec);
            }
        }
    }

    static public void main(String [] args) {
        secNum();
    }
}
